Dies ist ein altes Dokument aus der Zeit der Jahrtausendwende. SAP-HR (Human Resources) ist längst SAP-HCM (Human Caspital Management), mit SuccessFactors verbandelt und in die Cloud gewandert, abgesehen von der hartnäckigen Kundschaft, die auf der on-premise-Lösung besteht. Nur aus historischemn Gründen lassen wir das Dokument in der tse-Internet-Präsentatiuon.

Business Application Programming Interfaces


Einführung

Die SAP hat die objektorientierte Technologie im System R/3 eingeführt, indem sie die R/3-Prozesse und -Daten in Form von SAP-Business-Objekten verfügbar gemacht hat.

Auf die SAP-Business-Objekte können externe Anwendungen über standardisierte, plattformunabhängige Schnittstellen zugreifen - die BAPIs. Die SAP-Business-Objekte und ihre BAPIs bieten eine offene, objektorientierte Sicht der Geschäftsprozesse und Daten eines Systems R/3.

  

Einführung in die SAP-Business-Objekte

Business-Objekt-Technologie und -Programmierung basieren auf dem Konzept der "Business-Objekte". Reale Objekte, wie z. B. ein Mitarbeiter oder ein Kundenauftrag, werden in betriebswirtschaftlichen Anwendungssystemen, wie dem System R/3, als Business-Objekte abgebildet.

Sie können sich die SAP-Business-Objekte als "black boxes" vorstellen, die R/3-Daten und Geschäftsprozesse kapseln und auf diese Weise die Struktur- und Implementierungdetails der zugrundeliegenden Daten verbergen. Um diese Kapselung zu erzielen, sind die SAP-Business-Objekte als Entitäten aus mehreren Schichten angelegt.

  • Die innerste Schicht des SAP-Business-Objekts ist der Kern, der die eigentlichen Daten des Objekts darstellt.
  • Die zweite Schicht, die Integritätsschicht, stellt die betriebswirtschaftliche Logik des Objekts dar. Sie umfaßt Geschäftsregeln und Einschränkungen ("Constraints"), die für die Business-Objekte gelten.
  • Die dritte Schicht, die Schnittstellenschicht, beschreibt Implementierung und Struktur des SAP-Business-Objekts und definiert die Schnittstelle des Objekts zur Außenwelt.
  • Die vierte und äußerste Schicht eines Business-Objekts ist die Zugriffsschicht. Sie definiert die Technologien, mit denen externer Zugriff auf die Objektdaten möglich ist, z. B. COM/DCOM (Component Object Model/Distributed Component Object Model).

Zugriff auf Business-Objekte

Wie in der Grafik zu sehen ist, trennt die Schnittstellenschicht die Daten eines Business-Objekts von den Anwendungen und Technologien, mit denen auf diese Daten zugegriffen wird. Nach außen zeigen die SAP-Business-Objekte nur ihre Schnittstelle, die aus einer Reihe klar definierter Methoden besteht. Anwendungen können auf die Daten des Business-Objekts nur über dessen Methoden zugreifen.

Ein Anwendungsprogramm, das ein SAP-Business-Objekt und seine Daten nutzen möchte, benötigt nur die Informationen zur Ausführung der Objektmethoden. Auf diese Weise kann ein Anwendungsprogrammierer mit den SAP-Business-Objekten arbeiten und ihre Methoden aktivieren, ohne die zugrundeliegenden Implementierungsdetails des Objekts zu kennen oder in Betracht ziehen zu müssen.

Die Methoden, die einem Business-Objekt zugeordnet sind, stellen das Verhalten des Objekts dar. Wird eine Methode mit einem Business-Objekt ausgeführt, kann sie den internen Status des Objekts, d. h. die Daten des Objekts, ändern.

Ein Beispiel für eine Methode, die für das Business-Objekt "Mitarbeiter" ausgeführt werden kann ist die Methode "Existenz des Mitarbeiters prüfen".

 

Objekttypen und Objektinstanzen

Jedes einzelne Business-Objekt gehört, abhängig von der Art und den allgemeinen Merkmalen des Objekts, zu einer spezifischen Objektklasse. Diese Objektklassen werden als Objekttypen bezeichnet. So gehören beispielsweise die einzelnen Mitarbeiter in einem Unternehmen alle zum Objekttyp "Employee".

Die Objekttypen sind Beschreibungen der tatsächlichen SAP-Business-Objekte, die im System R/3 existieren können, d.h. jedes einzelne SAP-Business-Objekt ist eine spezifische Darstellung oder Instanz seines Objekttyps. So ist beispielsweise der Mitarbeiter mit dem Namen Karl Müller und der Mitarbeiternummer 1234 eine Instanz des Objekttyps "Employee".

Beim Schreiben von objektorientierten Anwendungsprogrammen definieren Anwendungsentwickler die Objekttypen, die von ihren Programmen verwendet werden sollen. Während der Laufzeit greift das Anwendungsprogramm dann auf die spezifischen Instanzen der definierten Objekttypen zu.

Wenn eine Instanz eines Business-Objekts von einem Anwendungsprogramm verwendet wird, spricht die Objektinstanz nur auf die Merkmale und Methoden an, die für ihren eigenen Objekttyp definiert wurden. Die SAP-Business-Objekttypen werden durch folgende Eigenschaften definiert:

  • Objekttyp
    Dieser beschreibt die Merkmale, die alle Instanzen dieses Objekttyps gemeinsam haben. Hierzu gehören Informationen wie z.B. der eindeutige Name des Objekttyps, seine Klassifizierung und das Datenmodell.
  • Schlüsselfelder
    Die Schlüsselfelder eines Objekttyps bestimmen die Struktur eines Kennzeichnungsschlüssels, der einer Anwendung einen eindeutigen Zugriff auf eine spezifische Instanz des Objekttyps gewährt. Der Objekttyp "Employee" und das Schlüsselfeld "Employee.Number" sind Beispiele eines Objekttyps und eines entsprechenden Schlüsselfelds.
  • Methoden
    Eine Methode ist eine Operation, die mit einem Business-Objekt ausgeführt werden kann und Zugriff auf die Objektdaten ermöglicht. Eine Methode ist durch einen Namen und eine Reihe von Parametern und Ausnahmen definiert, die zur Nutzung der Methode vom aufrufenden Programm bereitgestellt werden können oder müssen. BAPIs sind Beispiele für derartige Methoden.
  • Attribute
    Ein Attribut enthält Daten über ein Business-Objekt und beschreibt daher ein bestimmtes Objektmerkmal. "Employee.Name" ist beispielsweise ein Attribut des Objekttyps "Employee".
  • Ereignisse
    Ein Ereignis meldet das Auftreten einer Statusänderung in einem Business-Objekt.
  • Schnittstellen (Interfaces)
    Die Schnittstellen sind Gruppen verwandter Methoden, die einem Objekttyp zugeordnet sind.

 

Vererbung und Polymorphismus

Ein Ziel und der Hauptvorteil der objektorientierten Technologie ist die Wiederverwendbarkeit der Software.

Die Wiederverwendung von Softwarecode wird durch die Ableitung neuer Objekttypen von vorhandenen Objekttypen erzielt. Wenn ein Objekttyp aus einem vorhandenen Objekttyp generiert wird, wird der neue Objekttyp als "Subtyp" (oder Subklasse) und der vorhandene Objekttyp als übergeordneter Typ ("Supertyp" oder Superklasse) bezeichnet. Der Objekttyp "Employee" ist beispielsweise ein Subtyp, der vom übergeordneten Typ "Person" abgeleitet wurde.

Ein Subtyp erbt alle Eigenschaften und Methoden, die für den übergeordneten Typ gültig sind, von dem der Subtyp abgeleitet wurde. Der Subtyp kann jedoch auch über zusätzliche Eigenschaften und Methoden verfügen oder die Methoden, die er vom übergeordneten Typ geerbt hat, mit einem anderen Verhalten implementieren.

Die Tatsache, daß dieselbe Methode verschiedene Verhaltensarten in unterschiedlichen Business-Objekttypen auslösen kann, wird als Polymorphismus bezeichnet.

Innerhalb des Systems R/3 sind alle SAP-Business-Objekttypen und ihre Methoden im Business Object Repository (BOR) gekennzeichnet und beschrieben.

 

 

Einführung in das Business Object Repository

Alle SAP-Business-Objekttypen und ihre Methoden werden im R/3 Business Object Repository (BOR) identifiziert und beschrieben. Das Business Object Repository wurde mit R/3 Release 3.0 eingeführt, gleichzeitig mit den SAP-Business-Objekten und dem SAP Business Workflow. Zunächst wurde das BOR hauptsächlich vom SAP Business Workflow verwendet.

Das BOR enthält zwei Kategorien von Objekttypen:

  • Business-Objekttypen
    Dies sind die SAP-Business-Objekte, die bereits in Einführung in die SAP-Business-Objekte beschrieben wurden. Innerhalb des BOR sind die SAP-Business-Objekttypen in einer hierarchischen Struktur angeordnet, basierend auf den R/3-Anwendungskomponenten, wie z. B. Vertrieb, Materialwirtschaft etc.

  • Technische Objekttypen
    Hierbei handelt es sich z. B. um Texte, Workitems, archivierte Dokumente, sowie um Entwicklungs- und Modellierungsobjekte.

Mit der Einführung der BAPIs in R/3 Release 3.1 übernahm das BOR eine wichtige neue Rolle - es ist jetzt für externe Anwendungen der zentrale Zugriffspunkt auf die SAP-Business-Objekte und ihre BAPIs.

In diesem Kontext erfüllt das BOR zwei wesentliche Aufgaben:

·Es identifiziert und beschreibt die verfügbaren SAP-Business-Objekttypen und ihre BAPIs.

Wenn Sie ein Anwendungsprogramm entwickeln, entnehmen Sie dem BOR Informationen zu den SAP-Business-Objekttypen, ihren Schlüsselfeldern und den BAPI-Methoden. Das BOR enthält alle Informationen, die Sie benötigen, um die richtigen Objekttypdefinitionen und BAPI-Aufrufe in Ihr Anwendungsprogramm zu integrieren.

In BAPIs mit dem BAPI Browser anzeigen wird beschrieben, wie Sie die SAP-Business-Objekte und ihre BAPIs im Business Object Repository finden.

·Es erstellt SAP Business-Objektinstanzen.

Die Laufzeitumgebung des Business Object Repository empfängt Anforderungen von Client-Anwendungen zur Erstellung von Laufzeitobjekten und erstellt die entsprechenden Objektinstanzen.

 

 

Einführung in BAPIs

Die SAP-Business-Objekte im Business Object Repository (BOR) kapseln ihre Daten und Prozesse. Der externe Zugriff auf die Daten und Prozesse ist nur mit Hilfe bestimmter Methoden möglich - den BAPIs (Business Application Program Interfaces).

Ein BAPI ist als Methode eines SAP-Business-Objekts definiert.

Die Funktionalität, die im SAP-Business-Objekttyp "Material" implementiert ist, umfaßt beispielsweise eine Prüfung der Materialverfügbarkeit. Zu diesem Zweck stellt der Business-Objekttyp "Material" ein BAPI "Material.CheckAvailability" zur Verfügung.

Damit ein Anwendungsprogramm eine BAPI-Methode verwenden kann, muß es lediglich "wissen", wie die Methode aufzurufen ist. Das Anwendungsprogramm muß hierzu die Schnittstellendefinition der Methode kennen. Wenn Sie einen BAPI-Aufruf in Ihr Anwendungsprogramm einfügen möchten, müssen Sie daher nur die richtigen Schnittstelleninformationen angeben. Die Schnittstelle eines BAPIs wird definiert durch:

  • Importparameter mit Daten, die vom aufrufenden Programm an das BAPI übergeben werden sollen.
  • Exportparameter mit Daten, die vom BAPI an das aufrufende Programm zurückgegeben werden sollen.
  • Import-/Exportparameter (Tabellenparameter) für den Datenimport und -export.

 

Die BAPIs im System R/3 sind gegenwärtig als Funktionsbausteine realisiert, die sich im Function Builder befinden. Jeder Funktionsbaustein, der einem BAPI zugrundeliegt,

  • unterstützt das Protokoll Remote Function Call (RFC).
  • wurde einem SAP-Business-Objekt im Business Object Repository als Methode zugeordnet.
  • wird verarbeitet, ohne Bildschirmdialoge an die aufrufende Anwendung zurückzugeben.

 

Die folgende Abbildung zeigt die Beziehung zwischen einem SAP-Business-Objekttyp, seinen BAPIs und Funktionsbausteinen.

Ein Business-Objekt, seine BAPIs und die zugehörigen Funktionsbausteine

 

Durch diese Architektur kann SAP interne Änderungen an der Implementierung eines BAPIs vornehmen, ohne die externen Anwendungen zu beeinträchtigen, die auf dieses BAPI zugreifen.

 

Vorteile der BAPIs

BAPIs sind standardisierte Methoden der SAP-Business-Objekte, die Kunden und Fremdanbietern die Integration ihrer Softwarekomponenten mit dem System R/3 und dem Business Framework ermöglichen. Der folgende Abschnitt erläutert einige Vorteile durch die Nutzung der BAPIs als Zugriffsmethode auf die SAP-Business-Objekte.

  • Betriebswirtschaftlicher Standard
    Die Business-Objekte der SAP und ihre BAPIs sind nicht als Standard für die technische Interoperabilität gedacht, sondern vielmehr als Standard für den betriebswirtschaftlichen Inhalt. Sie ermöglichen die Integration des Systems R/3 und anderer Softwarekomponenten auf einer betriebswirtschaftlichen Ebene, und nicht auf technischer Ebene.

  • Konformität mit Standards
    Die Entwicklung der BAPIs ist Bestandteil einer gemeinsamen Initiative der SAP mit Kunden, Partnern und führenden Normenorganisationen. BAPIs entwickeln sich zu einem Kommunikationsstandard zwischen betriebswirtschaftlichen Systemen.
    Der Zugriff auf SAP-Business-Objekte und ihre BAPIs kann mit Hilfe objektorientierter Schnittstellentechnologien, wie z. B. COM/DCOM (Component Object Model/Distributed Component Object Model) von Microsoft erfolgen. Die SAP-Business-Objekte sind konform mit den Richtlinien der Object Application Group (OAG) und entsprechen, in Zusammenarbeit mit ObjectBridge von VisualEdge, den CORBA-Richtlinien (Common Object Request Broker Architecture) der Object Management Group.

  • Stabilität und Abwärtskompatibilität
    Nachdem ein BAPI von der SAP eingeführt und freigegeben wurde, bleiben seine Schnittstellendefinition und Parameter langfristig stabil. Auf diese Weise wird sichergestellt, daß Ihr Anwendungsprogramm von Änderungen der zugrundeliegenden R/3-Software und -Daten nicht beeinflußt wird.

    Sollten Erweiterungen der BAPIs erforderlich werden, z. B. durch Hinzufügen weiterer wahlfreier Parameter, können diese von der SAP vorgenommen werden, ohne die Stabilität vorhandener Anwendungen zu beeinträchtigen. Gleichzeitig können neue Anwendungen von der erweiterten Funktionalität profitieren.

  • Objektorientierung
    Als Methoden der SAP-Business-Objekte bieten BAPIs Zugriff auf die R/3-Daten und -Prozesse. Hierbei folgen sie einem objektorientierten Programmierungsmodell. BAPIs können mit Hilfe objektorientierter Schnittstellentechnologien, wie z. B. COM/DCOM, aufgerufen werden und ermöglichen auf diese Weise die freie Interaktion der Softwarekomponenten von SAP und anderen Anbietern.

  • Offenheit
    Auf BAPIs kann von allen Entwicklungsplattformen zugegriffen werden, die das SAP-Protokoll Remote Function Call (RFC) unterstützen.

 

BAPIs in Anwendungsprogrammen verwenden

In diesem Kapitel wird angenommen, daß die von Ihnen entwickelte Anwendung unter anderem die betriebswirtschaftlichen Daten oder Prozesse nutzen soll, die im System R/3 als SAP-Business-Objekte abgelegt sind, und daß der Zugriff auf diese Daten durch den Aufruf von einem oder mehreren BAPIs erfolgen soll. Ihre Anwendung kann so einfach oder komplex sein, wie Sie es wünschen, und sie kann Aufrufe für ein oder mehrere BAPIs enthalten.

BAPIs sind als Methoden der SAP-Business-Objekte im Business Object Repository (BOR) definiert und werden als Funktionsbausteine implementiert. Durch die Trennung der Definition eines BAPIs von seiner tatsächlichen Implementierung stehen zwei Ansätze zur Verfügung, über die Sie auf BAPIs zugreifen können:

  • Sie können das BAPI im BOR aufrufen.
  • Sie können RFC-Aufrufe an den Funktionsbaustein ausgeben, auf dem das BAPI basiert.

Die beiden Ansätze sind in der folgenden Abbildung dargestellt.

Objektorientierter Zugriff auf die BAPIs im Business Object Repository

Der objektorientierte Zugriff auf ein BAPI im BOR ist von zahlreichen Programmierplattformen möglich:

  • In Windows 95 und Windows NT können Sie die BAPI-Methoden mit BAPI ActiveX Control der SAP aufrufen. BAPI ActiveX Control ermöglicht externen Client-Anwendungen den Zugriff auf die SAP-Business-Objekte im BOR, indem die BAPIs via OLE Automation aufgerufen werden. Weitere Informationen finden Sie unter Mit BAPI ActiveX Control auf BAPIs zugreifen.
  • In Windows 95 und Windows NT können Sie die BAPIs auch mit Hilfe der BAPI C++ Klassenbibliothek der SAP aufrufen.

Die BAPI C++ Klassenbibliothek bietet für jedes SAP-Business-Objekt mit seinen BAPIs eine C++-Proxy-Klasse an. Die entsprechenden BAPIs werden von den zugehörigen Funktionen dieser Proxy-Klasse implementiert.

Verwendet ein Anwendungsprogramm die BAPI C++ Klassenbibliothek, um ein BAPI eines Business-Objekts aufzurufen, muß es lediglich eine Instanz eines Objekts der entsprechenden Proxy-Klasse in der BAPI C++ Klassenbibliothek erstellen, die erforderlichen Importparameter eingeben und anschließend die zugehörige Funktion aufrufen, mit der das gewünschte BAPI implementiert wird.

Darüber hinaus steht eine dynamische Proxy-Klasse zur Verfügung, mit der Anwendungen die BAPIs von den SAP-Business-Objekten aufrufen können, die nach der Freigabe der BAPI C++ Klassenbibliothek im System R/3 eingeführt wurden.

BAPI Java Klassenbibliothek der SAP können Sie von allen Plattformen mit Java Virtual Machine, die das Java Development Kit 1.0.2 unterstützt, auf BAPIs zugreifen. Die Verfügbarkeit der BAPI Java Klassenbibliothek wird in nächster Zukunft bekanntgegeben.

·BAPIs sind auch von Borlands Entwicklungsumgebung "Delphi" zugänglich. Informationen über den Zugriff auf BAPIs von Delphi erhalten Sie in der Delphi-Produktdokumentation.

Die vollständige Integration mit der Entwicklungsumgebung Visual Age for Java von IBM wird gegenwärtig erarbeitet. Sie wird Java-Entwicklern die Integration von BAPIs in ihre Java-Anwendungen ermöglichen. Die Verfügbarkeit von BAPIs innerhalb von Visual Age wird bekanntgegeben, sobald der Integrationsprozeß abgeschlossen ist.

Zugriff auf den Funktionsbaustein eines BAPIs

Sie können direkte RFC-Aufrufe an den Funktionsbaustein richten, auf dem das BAPI basiert. Dies kann von ABAP oder von externen Entwicklungsplattformen erfolgen, beispielsweise unter Verwendung der C/C++ RFC-Klassenbibliotheken. Dieser Vorgang wird in Mit RFC-Aufrufen auf BAPIs zugreifen beschrieben.

BAPIs in ein Anwendungsprogramm integrieren

Unabhängig vom verwendeten Ansatz müssen Sie die folgenden Schritte ausführen, um BAPIs von Ihrem Anwendungsprogramm aufzurufen:

·Suchen Sie das benötigte SAP-Business-Objekt und das BAPI. Dieser Vorgang wird in BAPIs mit dem BAPI Browser anzeigen beschrieben.

·Ermitteln Sie die Parameterinformationen zur Schnittstelle des BAPIs. Dieser Vorgang wird in Die erforderlichen Parameterinformationen ermitteln beschrieben.

·Integrieren Sie den BAPI-Aufruf oder Funktionsaufruf und die Parameterdeklarationen wie gewünscht in Ihr Anwendungsprogramm.

 

 Merkmale der BAPIs

Dieses Kapitel enthält Informationen zu den allgemeinen Merkmalen der BAPIs, mit denen Sie vertraut sein sollten, bevor Sie BAPI-Aufrufe in Ihr Anwendungsprogramm integrieren.

Detaillierte Informationen zur Funktionalität und den Parametern einzelner BAPIs finden Sie in der BAPI-Dokumentation.

 

Standard-BAPIs

Es gibt eine Reihe von BAPIs, die für die gesamte Palette der SAP-Business-Objekte gleichwertige Services bereitstellen. Die genaue Funktionalität des einzelnen BAPIs wird durch das SAP-Business-Objekt bestimmt, für das es implementiert wird.

Die folgenden Standard-BAPIs werden für die meisten Business-Objekte realisiert:

·GetList

Mit diesem BAPI können Sie nach Objektinstanzen suchen, die bestimmte Auswahlkriterien erfüllen.

Dieses BAPI gibt eine Liste von Schlüsselfeldern an das aufrufende Programm zurück. Ein solches BAPI ist beispielsweise CompanyCode.GetList, mit dem eine Zusammenstellung der Buchungskreise zurückgegeben wird.

Das folgende Codefragment stammt aus einem Visual Basic-Programm und veranschaulicht die Verwendung dieses BAPIs:

  Zuerst wird eine lokale Objektinstanz mit einem leeren Schlüsselfeld mit Hilfe des BAPI Control-Objekts erstellt:

Set oCompanyCode = oBapiControl.GetSAPObject("CompanyCode")

Anschließend wird das BAPI CompanyCode.GetList mit den Parametern Return und CompanyCodeList aufgerufen und eine Tabelle für die Buchungskreise bereitgestellt:

oCompanyCode.GetList Return:=oReturn,
CompanyCodeList:=otabCompanyCodes

·GetDetail

Mit diesem BAPI können Sie weitere Informationen zu einer spezifischen Objektinstanz abrufen. Die Objektinstanz wird in den Schlüsselfeldern des Objekts angegeben.

Ein solches BAPI ist beispielsweise CompanyCode.GetDetail, mit dem zusätzliche Daten über einen bestimmten Buchungskreis an das aufrufende Programm zurückgegeben werden. Das folgende Beispiel ist ein Auszug aus einem Visual Basic-Programm und zeigt die Verwendung dieses BAPIs:

 Zuerst wird eine lokale Instanz des Business-Objekts CompanyCode mit der Buchungskreisnummer 784 mit Hilfe des BAPI Control-Objekts erstellt:

Set oCompanyCode = oBapiControl.GetSAPObject("CompanyCode","784")

Anschließend wird das BAPI CompanyCode.GetDetail mit den Parametern Return und CompanyCodeDetail aufgerufen:

oCompanyCode.GetDetail Return:=oReturn,
CompanyCodeDetail:=oDetail

·CreateFromData oder Create

Dieses BAPI erstellt eine Objektinstanz und gibt Informationen zur Objektinstanz an das aufrufende Programm zurück.

Ein solches BAPI ist beispielsweise SalesOrder.CreateFromData, mit dem - basierend auf den Daten des aufrufenden Programms - ein Kundenauftrag erstellt wird.

Das folgende Beispiel ist ein Auszug aus einem Visual Basic-Programm und zeigt die Verwendung dieses BAPIs:

Zuerst wird mit dem BAPI Control-Objekt eine lokale Objektinstanz mit einem leeren Schlüsselfeld erstellt:

Set oOrder = oBapiControl.GetSAPObject("SalesOrder")

Nachdem die erforderlichen Struktur- und Tabellenparameter abgerufen und angegeben wurden, wird das BAPI aufgerufen:

oOrder.CreateFromData OrderHeaderIn:=oHeader,
OrderPartners:=oPartners,
OrderItemsIn:=oItemsIn,
Return:=oReturn

·Change

Dieses BAPI ändert eine bestehende Instanz eines SAP-Business-Objekts. Ein Beispiel für dieses BAPI ist EmployeePersonalData.Change, das die Daten eines Mitarbeitersatzes auf Grundlage der Daten ändert, die vom aufrufenden Programm geliefert werden.

·Delete

Das BAPI Delete löscht eine Instanz eines SAP-Business-Objekts. Ein Beispiel für dieses BAPI ist EmployeePrivAddress.Delete, das die Privatadresse im Datensatz des Mitarbeiters löscht, der vom aufrufenden Programm angegeben wird.

 

 

Datenbankkonsistenz

Jedes BAPI, das eine Instanz eines Objekts erstellt oder die Daten eines Objekts verändert, ist für die Datenbankkonsistenz verantwortlich. Ein BAPI bildet eine logische Arbeitseinheit (logical unit of work, LUW) - alle Datenbankänderungen werden vollständig oder überhaupt nicht ausgeführt. Dabei darf das "Commit-Work"-Kommando nicht vom BAPI selbst aufgerufen werden, sondern muß vom aufrufenden Programm ausgeführt werden.

 

 

Keine Dialogorientierung

BAPIs geben keine Bildschirmdialoge vom R/3-Server-System an die aufrufende Anwendung zurück.

 

 

Berechtigung

Für jede Benutzerinteraktion mit dem System R/3 muß der Benutzer bestimmte Berechtigungen haben. Damit ein BAPI als Teil Ihres Anwendungsprogramms ausgeführt werden kann, müssen für die Benutzer Ihrer Anwendung die entsprechenden Berechtigungen in ihren R/3-Stammsätzen festgelegt sein. Die mit den BAPIs bereitgestellte Dokumentation enthält Informationen zu den erforderlichen Berechtigungen.

Jeder Ausführungsversuch eines BAPIs, der aufgrund einer unzureichenden Berechtigung fehlschlägt, wird an die aufrufende Anwendung zurückgemeldet.

 

Datentypen und Datenanzeige

BAPI-Parameter können die meisten unterstützten SAP-Datentypen verwenden. Die Datentypen sind im Struktureintrag des einzelnen Parameters im ABAP Dictionary dokumentiert. In Import-, Export- und Import/Exportparameter wird beschrieben, wie Sie auf diese Informationen zugreifen können.

Die BAPI ActiveX Control setzt alle ABAP-Datentypen in die entsprechenden OLE-Datentypen um.

Wenn Sie RFC-Aufrufe an den zugrundeliegenden Funktionsbaustein eines BAPIs verwenden, beachten Sie folgende Hinweise zum Format von Währungsbeträgen und Datumsangaben:

·Währungsbetrag

Unabhängig von länderspezifischen Einstellungen geben BAPIs Währungsbeträge im Format nnnnnnnn.nnnn zurück, wobei n für eine Ziffer steht. Vor dem Dezimalpunkt können bis zu 19 Ziffern stehen, nach dem Dezimalpunkt folgen immer 4 Ziffern.

·Datumsformat

BAPIs geben Datumsangaben als Zeichenfolge im Format JJJJMMTT zurück, wobei JJJJ das Jahr, MM den Monat und TT den Tag angibt.

 

 

Synchrone und asynchrone Verarbeitung

BAPIs werden generell synchron verarbeitet.

Ab Release 4.0 können BAPIs jedoch im Kontext des Application Link Enabling (ALE) auch für die asynchrone Datenübertragung verwendet werden. Informationen zur Verwendung der BAPIs in ALE finden Sie in ALE-Programmierung.